منابع مشابه
Complete Monitors for Behavioral Contracts
A behavioral contract in a higher-order language may invoke methods of unknown objects. Although this expressive power allows programmers to formulate sophisticated contracts, it also poses a problem for language designers. Indeed, two distinct semantics have emerged for such method calls, dubbed lax and picky. While lax fails to protect components in certain scenarios, picky may blame an uninv...
متن کاملGradual Ownership Types
Gradual Ownership Types are a framework allowing programs to be partially annotated with ownership types, while providing the same encapsulation guarantees. The formalism provides a static guarantee of the desired encapsulation property for fully annotated programs, and dynamic guarantees for partially annotated programs via dynamic checks inserted by the compiler. This enables a smooth migrati...
متن کاملGradual Set-Theoretic Types
Problem and motivation. A static type system can be an extremely powerful tool for a programmer, providing early error detection, and offering strong compile-time guarantees on the behavior of a program. However, compared to dynamic typing, static typing often comes at the expense of development speed and flexibility, as statically-typed code might be more difficult to adapt to changing require...
متن کاملSpace-Efficient Blame Tracking for Gradual Types
Static and dynamic type systems have well-known strengths and weaknesses. Gradual typing provides the benefits of both in a single language by giving the programmer control over which portions of the program are statically typed and which portions are dynamically checked based on the presence or absence of type annotations. A compiler for a gradually typed language infers where the dynamic chec...
متن کاملSession Types with Gradual Typing
Session types enable fine-grained static control over communication protocols. Gradual typing is a means to safely integrate statically and dynamically typed program fragments. We propose a calculus for synchronous functional two-party session types, augment this calculus with a dynamically typed fragment as well as coercion operations between statically and dynamically typed parts, and establi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on Programming Languages
سال: 2019
ISSN: 2475-1421
DOI: 10.1145/3360548